Molecular mechanics algorithms are used to simulate physical properties of molecular systems such as free energy changes, salvation energy, intra-atomic forces, binding energies of ligand/target complexes or other host/guest complexes. Examples of molecular mechanics algorithms include MMFF94, OPLS, AMBER, MM4, and CHARMM. The energy of a molecular system is computed as the sum of component energy terms. There are local energy terms and there are non-bonded energy terms. The typical local energy terms used are the bond energy between two atoms, the angular bond energy between three atoms, and the dihedral angle energy between four atoms. Typical non-bonded energy terms are the electrostatic energy between pairs of non-bonded atoms, and the van der Waals energy between pairs of non-bonded atoms. Other local energy terms may also be included such as improper torsion angle energy, out-of-plane bending energy, Urey-Bradly energy, angle stretch-bend energy, and the like. The force on each atom is the derivative of the energy on the atom. The second derivative of the energies of all the atoms, the Hessian matrix, is sometimes calculated for use in minimization procedures.
In conventional molecular mechanics algorithms, the non-bonded interactions between pairs of atoms are computed for every pair of atoms in the molecular system except intramolecular interactions between pairs of atoms separated by fewer than some threshold number of bonds, and intramolecular interactions between pairs of atoms separated by exactly a certain number of bonds are weighted by some factor. These intramolecular interactions are referred to as “nearby non-bonded” interactions. In other words, nearby, as used herein means at least two atoms separated by fewer than some threshold number of bonds, including, but not limited to, pairs of atoms separated by exactly a certain number of bonds.
The non-bonded interaction terms, van der Waals energy and the electrostatic interaction are the most time consuming part of a molecular system energy calculation, because the non-bonded terms are computed between each atom and every other atom in the molecular system. That is, in such calculations the non-bonded terms are O(N^2) (order n2) in the number of atoms. Therefore, the non-bonded terms are more important terms to accelerate, as compared to the local terms which are O(N) (order n) in the number of atoms.
However, accelerating the local interaction terms is still important. Typically in molecular mechanics calculations, the local interaction calculations take approximately 1% of the time of the total calculation, and the non-bonded interaction calculations take approximately 99% of the time of the total energy calculation. Therefore, it is generally assumed that only the non-bonded calculations need to be accelerated. However, this assumption is specious. For example, suppose the total calculation takes 1 second and that an accelerator gives a factor of 100 times speed increase to the non-bonded part of the calculation. This would mean that the non-bonded part of the calculation changes from 0.99 seconds to 0.0099 seconds, and the local part of the calculation stays at 0.01 seconds. So the accelerated total calculation time is 0.0099+0.01=0.0199 seconds, or approximately 0.02 seconds. But 0.02 seconds is 1/50th of the original time of 1 second. Therefore, the overall calculation time was only reduced by a factor of 50 even though the non-bonded part of the calculation was sped up by a factor of 100.
Moreover, this discrepancy between acceleration of the non-bonded part of the calculation as compared with acceleration of the overall calculation increases as the acceleration factor increases. That is, if the local part of the calculation is not accelerated, then there are diminishing returns on accelerating the non-bonded part of the calculation. Consider another example to illustrate the problem using the above assumption of relative percentages of time for non-bonded and local energy and force, which may or may not include second derivative calculations. Suppose the total calculation takes 1 second and that an accelerator gives a factor of 1000 speedup to the non-bonded part of the calculation. This would mean that the non-bonded part of the calculation changes from 0.99 seconds to 0.00099 seconds, and the local part of the calculation stays at 0.01 seconds. So the accelerated total calculation time is 0.00099+0.01=0.01099 seconds, or approximately 0.01 seconds. But 0.01 seconds is 1/100th of the original time of 1 second. Therefore the overall calculation time was only reduced by a factor of 100 even though the non-bonded part of the calculation was sped up by a factor of 1000.
These examples show the importance of speeding up the local part of the calculation even though it typically takes only 1% of the time in a standard implementation. The examples also make apparent that it becomes more important to speed up the local part of the calculation the greater the acceleration of the non-bonded part of the calculation.
To accelerate the calculation of energies and forces for a molecular system others have tried:                force calculation and time integration implemented with a microprogram in PROM coupled to TTL-compatible components with fixed point calculations (see, e.g., A. F. Bakker and C. Bruin, Design and implementation of the Delft molecular-dynamics processor, in Special Purpose Computers; edited by B. J. Alder. Academic Press, San Diego, Calif., pp. 183-232 (1988));        floating point calculations implemented with an LSI, using a downloaded microprogram for force calculation (see, e.g., A. F. Bakker, G. H. Gilmer, M. H. Grabow, and K. Thompson, A Special Purpose Computer for Molecular Dynamics Calculations, J. Comp. Phys., 90: 313-335 (1990));        a special purpose hardwired computer for calculating non-bonded forces, coulomb force, coulomb potential, Van der Waals force and Van der Waals potential (see, e.g., R. Fine, G. Dimmler, and C. Levinthal, FASTRUN: A Special Purpose, Hardwired Computer for Molecular Simulation, Proteins, 11:242-253 (1991); or D. G. Dimmler, R. Fine, and C. Levinthal; FASTRUN:A High Performance Computing Device for Molecular Mechanics Using a Pipeline Architecture; BNL 37221; Nuc. Sci. Symp., 22-25 October (1985), San Francisco, Calif.; IEEE Trans. Nuc. Sci. NS-33, No. 1, Febrary (1986) 870-874);        a special purpose computer for calculating non-bonding force, using a single pipeline (see, e.g., T. Ito, J. Makino, T. Fukushige, T. Ebisuzaki, S. K. Okumura, and D. Sugimoto, A Special-Purpose Computer for N-Body Simulations: GRAPE-2A. Pubis, Astron. Soc. Japan, 45: 339-348 (1993));        a special purpose computer for calculating the wave-space part of the Ewald method with fixed point calculations for DFT and IDFT (see, e.g., T. Fukushige, J. Makino, T. Ito, S. Okumrua, T Ebisuzaki, and D. Sugimoto, WINE-1: Special-Purpose Computer for N-body Simulations with a Periodic Boundary Condition, Publs., Astron. Soc. Japan, 45: 361-375 (1993));        LSI for calculating non-bonded force, Van der Waals force or potential from neighbor lists generated in the boards with coefficients stored in off-LSI memory (see, e.g., S. Toyoda, H. Miyagawa, K. Kitamura, T. Amisaki, E. Hashimoto, H. Ikeda, A. Kusumi, and N. Miyakawa, Development of MD Engine: High-Speed Accelerator with Parallel Processor Design for Molecular Dynamics Simulations, Journal of Computational Chemistry, 20,2:185-199 (1999));        LSI for calculating non-bonding force, real-space coulomb force, wavenumber-space coulomb force, DFT, IDFT with coefficients stored in off-ASIC memory (see, e.g., T. Fukushige, M. Taiji, J. Makino, T. Ebisuzaki, and D. Sugimoto, A Highly-Parallelized Special-Purpose Computer for Many-body Simulations with an Arbitrary Central Force: MD-GRAPE, Astrophysical Journal, 468: 51-61 (1996)); and        LSI calculations for non-bonded forces only, with less than 100 floating point operations per chip with Van der Waals coefficients stored on chip and 32 atom types per chip (see, e.g., T. Narumi, Special-purpose computer for molecular dynamics simulations, Doctoral thesis, Department of General Systems Studies, College of Arts and Sciences, University of Tokyo (1998)).        
More recently, investigators have gotten away from special purpose computers and large scale integrations turning to programmable logic devices (PLDs), such as field programmable gate arrays (FPGAs). Some investigators have used an FPGA for a non-bonded calculation (see, e.g., T. Hamada, T. Fukushige, A. Kawai, and J. Makino, PROGRAPE-1: A Programmable, Multi-Purpose Computer for Many-Body Simulations, Publ. Astron. Soc. Japan 52:943-954 (2000)), and for two-dimensional lattice and for contact potential (non-molecular mechanics) (see, e.g., B. Shackleford, D Carter, G Snider, E. Okushi, M. Yasuda, H. Kozizumi, K. Seo, T. Iwanoto, and H Yasuura, An FPGA-Based Genetic Algorithm Machine, Eighth ACM International Symposium on Field-Programmable Gate Arrays(2000); and H. Simmler, E. Bindewald, R. Manner, Acceleration of Protein Energy Calculation by FPGAs, Proc. of the Int. Conf. on Mathem. and Engineering Techniques in Medicine and Biological Sciences (METMBS'00), Las Vegas, 177-183 (2000)). In addition, run-time reconfiguration of a field programmable gate array has been described in E. Lemoine, and D. Merceron, Run Time Reconguration of FPGA for Scanning Genomic Data Bases, IEEE Symposium on FPGAs for Custom Computing Machines, pp. 90-98 (1995).
Substantial cost savings, as well as time-to-market enhancement, may be achieved by using PLDs. Heretofore, a PLD has not been used to implement both non-bonded and local calculations for a molecular mechanics function. However, as explained above, a substantial advantage may be obtained by accelerating both non-bonded and local calculations. Accordingly, it would be both desirable and useful to provide the molecular mechanics calculation implemented on a single PLD.